生物信息学

序列比对




桂松涛 Blog
songtaogui@163.com


2025年09月

框架



  • 序列比对相关概念

  • 序列比对打分方法

  • 序列比对算法

  • 双序列比对应用

  • 多序列比对




生物信息学

序列比对: 1. 相关概念




桂松涛 Blog
songtaogui@163.com


2025年09月

1. 序列比对相关概念


序列比对(sequence alignment) 运用某种特定的数学模型或算法,找出两个或多个序列之间的最大匹配碱基或残基数,比对的结果反映了算法在多大程度上提供序列之间的相似性关系及它们的生物学特征。

AGCACACA vs ACACACTA

AGCACACA
|      |
ACACACTA

AGCACAC-A
| ||||| |
A-CACACTA

AGCACACA---
   |||||   
---ACACACTA
Which one is better? Why? How?

1. 序列比对相关概念

"简单! 我可以穷举!"
两条长度为\(n\)的序列比对的排列组合:
\( (2n)!/(n!)^2 \)
设n=300, \((2*300)!/(300!)^2 \approx 7*10^{88} \)


目前可见宇宙中所有原子的一亿倍!

1. 序列比对相关概念

点阵图(dot plot) 用于直观比较和可视化两个(或多个)生物序列相似性的工具。它通过二维矩阵的形式展示序列之间的匹配关系,帮助研究人员快速识别序列中的重复、倒置、插入、删除等结构特征。
ATGACTGGA
|||||||||
ATGACTGGA
ATGA--CTGGA
||||  ||.||
ATGATGCTCGA


1. 序列比对相关概念

点阵图及其应用

  • 点阵图是一种二维矩阵图,用于比较两个序列的相似性。本质是碱基之间的两两比对

  • X轴和Y轴:分别代表两条序列的碱基或氨基酸位置。

  • 点的绘制:如果两条序列在某个位置有相同的碱基或氨基酸,或者在一定窗口大小内匹配度足够高,则在该位置绘制一个点。

  • 窗口大小和错配限制:为了提高比对的灵活性,点阵图通常会设置一个窗口大小(例如10个碱基),并在该窗口内允许一定数量的错配(例如0个或1个错配)。

点阵图的优点

  1. 直观性:点阵图以图形化的方式展示序列之间的相似性,比传统的文本比对结果更直观。

  2. 全局视角:能够快速识别序列中的重复、倒置、插入、删除等结构变化,而这些在传统比对中可能被掩盖。

  3. 参数可调:通过调整窗口大小和错配限制,可以改变比对的严格性,从而适应不同的分析需求。

  4. 反向互补识别:对于核酸序列,点阵图还可以识别反向互补序列,这对于研究基因组结构和功能非常重要。


1. 序列比对相关概念

点阵图及其应用

1. 序列比对相关概念

点阵图及其应用

1. 序列比对相关概念

点阵图及其应用
DotLetJS


1. 序列比对相关概念

AGCACCACCA
|........|
ACACGATCTA
AGCACCACC-A
| |||.|.| |
A-CACGATCTA

  • 插入(insertion)缺失(deletion) gap: -

  • 替换(substitution):

    • 针对DNA: 转换(transition)颠换(transversion)

汉明距离(Hamming distance): 两个 字符串对应位置的不同字符的个数。(没有gap)

编辑距离(Edit distance, ): 将一个字符 串通过插入、删除、替代等操作变为另一个字符串的最少操作次数。

针对上述序列:

  • 汉明距离 = 8

  • 编辑距离 = 4


1. 序列比对相关概念

相似性、同一性、同源性(直系同源、旁系同源)
  • 相似性(similarity): 是指两序列间直接的数量关系,如部分相同、相似的百分比或其他一些合适的度量。
  • 同一性(identity): 是指两序列在同一位点核苷酸或氨基酸残基完全相同的序列比例。
  • 同源性(homology): 是指从某个共同祖先经趋异进化而形成的不同序列,也就是从一些数据中推断出的两个基因在进化上具有共同祖先的结论,它是质的判断。
  • 相似性和同一性都是量的概念,一般用百分数表示; 同源性是质的判断, 要么同源要么不同源。
    直系同源基因(ortholog gene) 是在物种形成过程中形成的、在不同物种中有相同功能的同源基因

    旁系同源基因(paralogous gene) 是指一个物种内的同源基因。

    直系同源基因和旁系同源基因统称为同源基因(homolog)
    "基因A和基因B的相似度为90%̌ ", "基因A和基因B的同源性为90%̌ x"

    1. 序列比对相关概念

    同源性: 直系同源、旁系同源



    生物信息学

    序列比对: 2. 打分矩阵




    桂松涛 Blog
    songtaogui@163.com


    2025年09月

    2. 序列比对打分方法

    为什么要打分?
    ATGA--CTGGA
    ||||  ||.||
    ATGATGCTCGA
    ATGACTG---GA
    |||| ||   ||
    ATGA-TGCTCGA
  • DNA突变类型出现频率不一致: SNP > INDEL
  • DNA突变类型出现频率不一致: 转换 > 颠换
  • 氨基酸替换出现频率不一致: 极性、非极性
  • 空位起始 vs 空位延伸
  • 打分矩阵(Scoring Matrix) 碱基对/氨基酸之间两两转换的打分表, 反映同源序列进化过程中由于突变产生差异的生物学依据。

    • DNA序列的打分矩阵通常只由错配罚分与插缺罚分定义

    • 蛋白质序列比较的常用打分矩阵反映了在相关序列的进化中发生氨基酸替换的频率


    2. 序列比对打分方法

    打分矩阵——DNA

    2. 序列比对打分方法

    打分矩阵——蛋白质: PAM矩阵

    PAM矩阵 是基于进化原理,建立在可接受点突变(point accepted mutation, PAM)模型基础上的氨基酸序列打分矩阵。如果一种氨基酸替换在自然界中频繁出现,说明自然界更容易接受这种替换, 则这对氨基酸的替换得分就高。

    • 一个PAM (PAM1) 就是一个进化变异单位, 即1%的氨基酸改变。

    • \(PAMN = PAM1 ^ N\)


    2. 序列比对打分方法

    打分矩阵——蛋白质: BLOSUM矩阵

    BLOSUM矩阵 模块替代矩阵(BLOcks SUbstitution Matrix),是从蛋白质序列块(短序列)比对推导出来的矩阵,用于解决序列的远距离相关性。在构建矩阵过程中,通过设置最小相同残基数百分比将序列片段整合在一起,以避免由于同一个残基对被重复计数而引入的潜在偏差。

    • 通过设置不同的百分比,产生了不同矩阵: BLOSUM80 —— ≥ 80% 相同残基的序列模块; BLOSUM62 —— ≥ 62% 相同残基的序列模块;

    • 在BLOSUM 矩阵中,BLOSUM 编号数字越大,序列间的进化关系就越近(与PAM 矩阵相反)。


    2. 序列比对打分方法

    PAM vs BLOSUM

    PAM

    • 对相关性未知的序列进行比对:只进行一次比对时常用PAM120矩阵。如想得到结果更全面更有效的结 果则应使用多个矩阵。用三个矩阵:PAM40、PAM120、 PAM250,可得出全面覆盖的结果。只用PAM80和PAM200 两个矩阵也可达到较好的覆盖面。

    • 对两个同源序列进行比对:多用几个不同的PAM矩阵会得到较好的结果。如果只进行一次比对常用 PAM200矩阵。如果进行两次分析,那用PAM80和 PAM250,或者PAM120和PAM320可以得到较好的结果。

    • 在进行比对时最好是根据序列对实际差异程度来选用相应的PAM矩阵。

    BLOSUM

    • PAM矩阵从1到250PAM两极距离太远,可能引起不准确;而Blosum直接从最同源的序列的区间排比获取匹配率,不考虑进化距离。因此Blosum矩阵的优点是符合实际观测结果不足之处是它不能提供进化信息

    • Blosum矩阵的突变数据来源于未加gaps的序列区间排比,相当于蛋白序列的保守区。大量试验表明, Blosum矩阵总体比PAM矩阵更适合于生物学关系的分析和局部相似性搜索。


    2. 序列比对打分方法

    空位罚分(Gap penalties)

    ATGA--CTGGA
    ||||  ||.||
    ATGATGCTCGA

    • 线性罚分 (Linear gap penalty)

      • 空位起始 (gap opening penalty)

      • 空位延伸 (gap extension penalty)




    生物信息学

    序列比对: 3. 比对算法




    桂松涛 Blog
    songtaogui@163.com


    2025年09月

    3. 比对算法

    序列比对的类型
    按照比对序列数目: 双序列比对,多序列比对
    双序列比对的需求和算法: 全局比对、局部比对


    3. 双序列比对算法

    全局比对和局部比对的求解目标
    全局比对

    • 目标: 寻找两个字符串之间的最佳比对

    • 数学问题: 求解编辑图中位于顶点\((0,0)\)和\((n,m)\)之间的最长路径


    局部比对

    • 目标: 找到两条序列中最好局部比对

    • 数学问题: 求解编辑图中任意顶点\((i,j)\)和\((i',j')\)之间的所有路径中寻找一条最长路径


    3. 双序列比对算法

    解题思路: 动态规划算法

    动态规划(Dynamic Programming, DP)
    是一种在数学、管理科学、计算机科学、经济学和生物信息学等领域中使用的算法思想,它将复杂问题分解为更简单的子问题,通过解决子问题来逐步解决原问题。动态规划算法通常用于解决具有重叠子问题和最优子结构特性的问题,它通过存储子问题的解来避免重复计算,从而提高效率。

    • 核心概念: 最优子结构和重叠子问题

      • 最优子结构意味着问题的最优解包含其子问题的最优解。

      • 重叠子问题则是指在递归过程中,许多子问题会被重复计算多次。

      • 动态规划算法通过存储这些子问题的解,避免重复计算,从而提高效率。


    3. 双序列比对算法

    理解动态规划: 分型、递归和斐波那契数列

    3. 双序列比对算法

    理解动态规划: 分型、递归和斐波那契数列
    无限繁殖的兔子 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
    递归思路的解决方案:

    # solution 1: normal recursion
    # n: number of months
    # k: number of offsprings
    function fib1(n::Int, k::Int)
        if n <= 2
            return 1
        end
        return fib1(n - 1, k) + k * fib1(n - 2, k)
    end
    # test
    for i in 1:10
        print("$(fib1(i,1)) ")
    end
    1 1 2 3 5 8 13 21 34 55


    递归会带来大量的重复计算

    3. 双序列比对算法

    理解动态规划: 分型、递归和斐波那契数列
    递归思路的解决方案:

    # solution 1: normal recursion
    # n: number of months
    # k: number of offsprings
    function fib1(n::Int, k::Int)
        if n <= 2
            return 1
        end
        return fib1(n - 1, k) + k * fib1(n - 2, k)
    end
    
    # test
    for i in 1:10
        print("$(fib1(i,1)) ")
    end
    1 1 2 3 5 8 13 21 34 55

    动态规划的解决方案:

    # solution 2: use memoization -> dynamic programming
    # n: number of months
    # k: number of offsprings
    
    function fib2(n::Int, k::Int)
        memo = Dict{Int, Int}()
        memo[1] = 1
        memo[2] = 1
        return fib2(n, k, memo)
    end
    
    function fib2(n::Int, k::Int, memo::Dict{Int, Int})
        if haskey(memo, n)
            return memo[n]
        end
        memo[n] = fib2(n - 1, k, memo) + k * fib2(n - 2, k, memo)
        return memo[n]
    end
    
    # test
    for i in 1:10
        print("$(fib2(i,1)) ")
    end
    1 1 2 3 5 8 13 21 34 55


    3. 双序列比对算法


    Needleman Wunsch 算法




    生物信息学

    序列比对: 4. 双序列比对应用




    桂松涛 Blog
    songtaogui@163.com


    2025年09月

    4. 双序列比对应用


    BLAST

    4. 双序列比对应用


    BLAST

    4. 双序列比对应用


    BLAST



    生物信息学

    序列比对: 5. 多序列比对




    桂松涛 Blog
    songtaogui@163.com


    2025年09月

    5. 多序列比对


    Progressive Alignment

    5. 多序列比对


    MAFFT

    5. 多序列比对


    CLUSTAL